Error log
When the driver detects an error, it logs its human-readable string representation in the non-volatile system log memory. If the log is full, the oldest record is removed.
The log can be printed using log
command.
Example output
SC-felix#>log
AUX(err 1, run 8, 25 s): #16445, 46.4932V, 16.6112A, 40.4155C, 16.0112RPM, level E stage 0 pass 0 : phase C positive over-current
Error log structure
The error log string is structured as follows:
Error Log Field | Description |
---|---|
AUX | Source of the log. |
err 1 | Error criticality. |
run 8 | Current run from permanents. |
25s | Time from controller start. |
#16445 | Error number. (equals to /driver/error ) |
46.4932V | Battery voltage at the time of the error. |
16.6112A | Battery current at the time of the error. |
40.4155C | Controller temperature at the time of the error. |
16.0112RPM | Motor speed at the time of the error. |
level E stage 0 pass 0 : phase C positive overcurrent | Decoded error number. |
If you see over-voltage errors (such as 'Input voltage abs max'), but the reported voltage is below the 'Critical voltage' threshold: Controller averages the voltage measurement, nevertheless the over-voltage protection reacts much faster than the averaging speed. Therefore, the error might be raised even though the recorded value is not exceeding the limit.
LED status indicator and error codes
The siliXcon controllers are equipped with a status LED that provides visual feedback on the device's operational state. In case of a system fault, the LED will blink in a specific sequence to communicate a 16-bit error code. This allows for rapid diagnostics of potential issues. The error code is represented by a sequence of short and long blinks, which correspond to the binary digits '0' and '1'.
Blink pattern definition
The LED signals are defined as follows:
- Short Blink (Binary '0'): A brief flash of light representing a binary digit '0'.
- Long Blink (Binary '1'): A longer flash of light representing a binary digit '1'.
- Inter-Bit Pause: A short pause between each blink within the 16-bit sequence.
- End-of-Code Pause: A significantly longer pause that occurs after all 16 bits of the code have been transmitted. After this pause, the entire sequence repeats.
How to decode an error
To identify an error, observe the blinking pattern and translate it into a 16-bit binary number. The blinking occurs from left to right (most significant bit to least significant bit).
Example
Let's assume the device is signaling a "Undervoltage or SMPS off - battery voltage was below Critical error undervoltage" error, which corresponds to the binary code 0111 1111 1111 0100 (Hex: 0x7FF4). You would observe the following pattern:
Sequence Step | Event | Bit Value |
---|---|---|
1 | Short blink | 0 (MSB) |
2 | Long blink | 1 |
3 | Long blink | 1 |
4 | Long blink | 1 |
5 | Long blink | 1 |
6 | Long blink | 1 |
7 | Long blink | 1 |
8 | Long blink | 1 |
9 | Long blink | 1 |
10 | Long blink | 1 |
11 | Long blink | 1 |
12 | Long blink | 1 |
13 | Short blink | 0 |
14 | Long blink | 1 |
15 | Short blink | 0 |
16 | Short blink | 0 (LSB) |
17 | Long pause | — |
By writing down the sequence of 0s and 1s, you can determine the 16-bit code and look up its meaning in decode the error page.